головне меню список тем тестування презентації історія створення

 

4.3. Пам'ять програм і даних МК

В МК використовується три основні види пам'яті. Пам'ять програм є постійною пам'яттю (ПЗП), призначеною для зберігання програмного коду (команд) і констант. Її вміст в ході виконання програми не змінюється. Пам'ять даних призначена для зберігання змінних в процесі виконання програми і є ОЗП. Регістри МК - цей вид пам'яті включає внутрішні регістри процесора і регістри, які служать для управління периферійними пристроями (регістри спеціальних функцій).


4.3.1. Пам'ять програм (ПЗП)

Основною властивістю пам'яті програм є її енергонезалежність, тобто можливість зберігання програми за відсутності живлення. З погляду користувачів МК слід розрізняти наступні типи енергозалежної пам'яті програм:
ПЗП масочного типу - mask-ROM. Вміст комірок ПЗП цього типу заноситься при її виготовленні за допомогою масок і не може бути згодом замінена або перепрограмована. Тому МК з таким типом пам'яті програм слід використовувати тільки після достатньо тривалої експлуатації. Основним недоліком даної пам'яті є необхідність значних витрат на створення нового комплекту фотошаблонів і їх впровадження у виробництво. Звичайно такий процес займає 2-3 місяці і є економічно вигідним тільки при випуску десятків тисяч приладів. ПЗП масочного типу забезпечують високу надійність зберігання інформації внаслідок програмування в заводських умовах з подальшим контролем результату.
ПЗП, програмовані користувачем, з ультрафіолетовим стиранням - EPROM (Erasable Programmable ROM). ПЗП даного типу програмуються електричними сигналами і стираються за допомогою ультрафіолетового опромінювання. Елемент пам'яті EPROM є МОП-транзистором з «плаваючим» затвором, заряд на який переноситься з управляючого затвора при подачі відповідних електричних сигналів. Для стирання вмісту комірки вона опромінюється ультрафіолетовим світлом, яке надає заряду на плаваючому затворі енергію, достатню для подолання потенційного бар'єру і стікання на підкладку. Цей процес може займати від декількох секунд до декількох хвилин. МК з EPROM допускають багатократне програмування і випускаються в керамічному корпусі з кварцовим віконцем для доступу ультрафіолетового світла. Такий корпус вартує досить дорого, що значно збільшує вартість МК. Для зменшення вартості МК з EPROM його вкладають в корпус без віконця (версія EPROM з однократним програмуванням).
ПЗП, одноразово програмовані користувачем, - OTPROM (One-Time Programmable ROM). Є версією EPROM, виконаною в корпусі без віконця для зменшення вартості МК на його основі. Скорочення вартості при використовуванні таких корпусів настільки значне, що останнім часом ці версії EPROM часто використовують замість масочних ПЗП.
ПЗП, програмовані користувачем, з електричним стиранням - EEPROM (Electrically Erasable Programmable ROM). ПЗП даного типу можна вважати новим поколінням EPROM, в яких стирання елементів пам'яті проводиться також електричними сигналами за рахунок використовування тунельних механізмів. Вживання EEPROM дозволяє стирати і програмувати МК, не знімаючи його з плати. У такий спосіб можна проводити відладку і модернізацію програмного забезпечення. Це дає величезний виграш на початкових стадіях розробки МК-систем або в процесі їх вивчення, коли багато часу йде на пошук причин непрацездатності системи і виконання циклів стирання-програмування пам'яті програм. За ціною EEPROM займають середнє положення між OTPROM і EPROM. Технологія програмування пам'яті EEPROM допускає побайтове стирання і програмування комірок. Не дивлячись на очевидні переваги EEPROM, тільки в небагатьох моделях МК така пам'ять використовується для зберігання програм. Зв'язано це з тим, що, по-перше, EEPROM мають обмежений об'єм пам'яті. По-друге, майже одночасно з EEPROM з'явилися FLASH-ПЗП, які при схожих споживчих характеристиках мають більш низьку вартість;
ПЗП з електричним стиранням типа Flash - Flash-ROM. Функціонально Flash-пам'ять мало відрізняється від EEPROM. Основна відмінність полягає в способі стирання записаної інформації. В пам'яті EEPROM стирання проводиться окремо для кожної комірки, а в Flash-пам'ять стирати можна тільки цілими блоками. Якщо необхідно змінити вміст однієї комірки Flash-пам'яті, буде потрібно перепрограмувати весь блок. Спрощення декодуючих схем в порівнянні з EEPROM привело до того, що МК з Flash-пам'яттю стають конкурентоздатними по відношенню не тільки до МК з однократно програмованими ПЗП, але і з масочними ПЗП також.


4.3.2. Пам'ять даних

Пам'ять даних  МК виконується, як правило, на основі статичного ОЗП. Термін «статичне» означає, що вміст комірок ОЗП зберігається при зниженні тактової частоти МК до скільки завгодно малих значень (з метою зниження енергоспоживання). Більшість МК має такий параметр, як «напруга зберігання інформації» - USTANDBY. При зниженні напруги живлення нижче мінімально допустимого рівня UDDMIN, але вище за рівень USTANDBY робота програми МК виконуватися не буде, але інформація в ОЗП зберігається. При відновленні напруги живлення можна буде скинути МК і продовжити виконання програми без втрати даних. Рівень напруги зберігання складає звичайно близько 1 В, що дозволяє у разі потреби перевести МК на живлення від автономного джерела (батареї) і зберегти в цьому режимі дані ОЗП.
Об'єм пам'яті даних  МК, як правило, невеликий і складає звичайно десятки і сотні байт. Цю обставину необхідно враховувати при розробці програм для МК. Так, при програмуванні МК константи, якщо можливо, не зберігаються як змінні, а заносяться в ПЗП програм. Максимально використовуються апаратні можливості МК, зокрема, таймери. Прикладні програми повинні орієнтуватися на роботу без використовування великих масивів даних.

4.3.3. Регістри МК

Як і всі МПС, МК мають набір регістрів, які використовуються для управління його ресурсами. До числа цих регістрів входять звичайно регістри процесора (акумулятор, регістри стану, індексні регістри), регістри управління (регістри управління перериваннями, таймером), регістри, що забезпечують ввід/вивід даних (регістри даних портів, регістри управління паралельним, послідовним або аналоговим вводом/виводом). Звернення до цих регістрів може проводитися по-різному.
В МК з RISC-процесором всі регістри (часто і акумулятор) розташовуються за адресами, що явно задаються. Це забезпечує більш високу гнучкість при роботі процесора.
Одним з важливих питань є розміщення регістрів в адресному просторі МК. В деяких МК всі регістри і пам'ять даних розташовуються в одному адресному просторі. Це означає, що пам'ять даних суміщена з регістрами. Такий підхід називається «відображенням ресурсів МК на пам'ять».
В інших МК адресний простір пристроїв вводу/виводу відокремлений від загального простору пам'яті. Окремий простір вводу/виводу дає деяку перевагу процесорам з гарвардською архітектурою, забезпечуючи можливість прочитувати команду під час звернення до регістра вводу/виводу.


4.3.4. Стек МК

В мікроконтролерах ОЗП даних використовується також для організації виклику підпрограм і обробки переривань. При цих операціях вміст програмного лічильника і основних регістрів (акумулятор, регістр стану і інші) зберігається і потім відновлюється при поверненні до основної програми.
У фон-нейманівській архітектурі єдина область пам'яті використовується, у тому числі, і для реалізації стека. При цьому знижується продуктивність пристрою, оскільки одночасний доступ до різних видів пам'яті неможливий. Зокрема, при виконанні команди виклику підпрограми наступна команда вибирається після того, як в стек буде поміщений вміст програмного лічильника.
В гарвардській архітектурі стекові операції проводяться в спеціально виділеній для цієї мети пам'яті. Це означає, що при виконанні програми виклику підпрограм процесор з гарвардською архітектурою проводить декілька дій одночасно.
Необхідно пам'ятати, що МК обох архітектур мають обмежену ємність пам'яті для зберігання даних. Якщо в процесорі є окремий стек і об'єм записаних в нього даних перевищує його місткість, то відбувається циклічна зміна вмісту покажчика стека, і він починає посилатися на раніше заповнену комірку стека. Це означає, що після дуже великої кількості викликів підпрограм в стеку опиниться неправильна адреса повернення. Якщо МК використовує загальну область пам'яті для розміщення даних і стека, то існує небезпека, що при переповнюванні стека відбудеться запис в область даних або буде зроблена спроба запису завантажуваних в стек даних в область ПЗП.


4.3.5. Зовнішня пам'ять

Не дивлячись на існуючу тенденцію по переходу до закритої архітектури МК, в деяких випадках виникає необхідність підключення додаткової зовнішньої пам'яті (як пам'яті програм, так і даних).
Якщо МК містить спеціальні апаратні засоби для підключення зовнішньої пам'яті, то ця операція проводиться штатним способом (як для МП).
Другий, більш універсальний, спосіб полягає в тому, щоб використовувати порти вводу/виводу для підключення зовнішньої пам'яті і реалізувати звернення до пам'яті програмними засобами. Такий спосіб дозволяє задіювати прості пристрої вводу/виводу без реалізації складних шинних інтерфейсів, проте приводить до зниження швидкодії системи при зверненні до зовнішньої пам'яті.

 

 

попередня тема наступна тема